//作业讲解

#include<stdio.h>
#include<windows.h>

//输入一个数,返回每位数和
int DigitSum(int num)
{
    int sum =0;
    while (num>9)
    {
        sum =sum+num%10;
        num =num/10;
    }
    sum =sum+num;
    return sum;
}
//
int d(int num)
{

    if(num>9)
    {
        return num%10+d(num/10);
    }
    else
    { 
        return num;
    }

}

// int main()
// {
//     int num=0;
//     scanf("%d",&num);
//     printf("%d\n",DigitSum(num));
//     printf("%d\n",d(num));
//     return 0;
// }


//递归实现n的k次方
double my_pow(int n,int k)
{
    if (k==0)
    {
        return 1;
    }
    
    else if (k>=1)
    {
        return n*my_pow(n,k-1);
    }
    else//负数时
    {
        return 1.0/my_pow(n,-k);
    }  
}
double Pow(int n, int k)
{
if (k == 0)
return 1;
else if (k > 0)
return n * Pow(n, --k);
else
return 1.0 / Pow(n, -k);
}

int main()
{
    int n=0;
    int k=0;
    scanf("%d %d",&n,&k);

    printf("%lf",Pow(n,k));//返回值是double 要用%lf
    return 0;
}